/**
 * 弱引用遭到gc就会回收
 *
 */
package JUC_study.c_022_RefTypeAndThreadLocal;

import java.lang.ref.WeakReference;

//弱引用 ： 每次垃圾回收的时候都会被回收掉
/*应用： ThreadLocation
*       ThreadLocation每次set的时候会将值保存到当前线程中的ThreadLocationMap容器中，
*        map中的key值是ThreadLocation对象，这个key值是弱引用的
*       所以，当强引用消失的时候，弱引用也会消失
 */

public class T03_WeakReference {
    public static void main(String[] args) {
        WeakReference<M> m = new WeakReference<>(new M());

        System.out.println(m.get());
        System.gc();
        System.out.println(m.get());


        ThreadLocal<M> tl = new ThreadLocal<>();
        tl.set(new M());
        tl.remove();//当不用时必须要remove

    }
}

